package com.fxz.rabbitmq.api;

import com.fxz.rabbitmq.api.exception.MessageException;
import com.fxz.rabbitmq.api.pojo.Message;

import java.util.List;

/**
 * 生产者发送消息
 *
 * @author Fxz
 * @version 1.0
 * @date 2021-08-17 12:56
 */
public interface MessageProducer {

    /**
     * 消息的发送 附带SendCallback回调 执行响应的业务逻辑处理
     *
     * @param message
     * @param sendCallback
     */
    void send(Message message, SendCallback sendCallback);

    /**
     * 消息的发送
     *
     * @param message
     */
    void send(Message message) throws MessageException;

    /**
     * 消息的批量发送
     *
     * @param messages
     */
    void send(List<Message> messages);
}
